package com.zp.self.module.level_4_算法练习.数据结构.数组;

import java.util.Arrays;

/**
 * @author By ZengPeng
 */
public class 力扣_217_存在重复元素 {
    //测试
    public static void main(String[] args) {

        System.out.println(new 力扣_217_存在重复元素().containsDuplicate(new int[]{1,2,3,1}));
        System.out.println(new 力扣_217_存在重复元素().containsDuplicate(new int[]{1,2,3,4}));
        System.out.println(new 力扣_217_存在重复元素().containsDuplicate(new int[]{1,1,1,3,3,4,3,2,4,2}));
    }

    /**
     * 题目：给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ，返回 true ；
     *      如果数组中每个元素互不相同，返回 false 。
     *
     *
     * 分析：
     *      1.简单的 双重for循环   时间:O(n²) ,空间:O(1);
     *      2.简单的 集合记录     时间:O(n) ,空间:O(n);  Set自带去重 ,直接判断长度
     *      3.先排序 快速排序     时间:O(n*logn) ,空间:O(1);
     *
     * 边界值注意：
     *      1.
     **/
    //2.简单的 集合记录     时间:O(n) ,空间:O(n);
    public  boolean containsDuplicate(int[] nums) {
        Arrays.sort(nums);
        for (int i = 1; i < nums.length; i++) {
           if(nums[i-1]==nums[i])return true;
        }
        return false;
    }
}
